package com.ozo.cloud.manage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ozo.cloud.common.base.model.BaseBatchDTO;
import com.ozo.cloud.common.base.model.BasePage;
import com.ozo.cloud.common.base.model.PageResult;
import com.ozo.cloud.manage.entity.SysPost;
import com.ozo.cloud.manage.pojo.dto.ChangeStatusDTO;
import com.ozo.cloud.manage.pojo.dto.SysPostQueryDTO;
import com.ozo.cloud.manage.pojo.dto.SysPostSaveDTO;
import com.ozo.cloud.api.manage.vo.SysPostVO;

import java.util.List;
import java.util.Map;

/**
 * 岗位 服务类
 *
 * @author qiangesoft
 * @version 1.0
 * @date 2024-11-16 23:43:39
 */
public interface ISysPostService extends IService<SysPost> {

    /**
     * 添加岗位
     *
     * @param saveDTO
     */
    void add(SysPostSaveDTO saveDTO);

    /**
     * 删除岗位
     *
     * @param batchDTO
     */
    void remove(BaseBatchDTO<Long> batchDTO);

    /**
     * 编辑岗位
     *
     * @param saveDTO
     */
    void edit(SysPostSaveDTO saveDTO);

    /**
     * 岗位分页
     *
     * @param basePage
     * @param queryDTO
     * @return
     */
    PageResult<SysPostVO> page(BasePage basePage, SysPostQueryDTO queryDTO);

    /**
     * 修改状态
     *
     * @param statusDTO
     */
    void changeStatus(ChangeStatusDTO statusDTO);

    /**
     * 查询用户岗位
     *
     * @param userIdList
     * @return
     */
    Map<Long, List<SysPostVO>> listByUserIds(List<Long> userIdList);

    /**
     * 岗位列表
     *
     * @param queryDTO
     * @return
     */
    List<SysPostVO> list(SysPostQueryDTO queryDTO);
}
